import { defineMock } from './base'

export default defineMock([
  {
    url: 'roles/options',
    method: ['GET'],
    body: {
      code: '00000',
      data: [
        {
          value: 2,
          label: '系统管理员',
        },
        {
          value: 4,
          label: '系统管理员1',
        },
        {
          value: 5,
          label: '系统管理员2',
        },
        {
          value: 6,
          label: '系统管理员3',
        },
        {
          value: 7,
          label: '系统管理员4',
        },
        {
          value: 8,
          label: '系统管理员5',
        },
        {
          value: 9,
          label: '系统管理员6',
        },
        {
          value: 10,
          label: '系统管理员7',
        },
        {
          value: 11,
          label: '系统管理员8',
        },
        {
          value: 12,
          label: '系统管理员9',
        },
        {
          value: 3,
          label: '访问游客',
        },
      ],
      msg: '一切ok',
    },
  },

  {
    url: 'roles/page',
    method: ['GET'],
    body: {
      code: '00000',
      data: {
        list: [
          {
            id: 2,
            name: '系统管理员',
            code: 'ADMIN',
            status: 1,
            sort: 2,
            createTime: '2021-03-25 12:39:54',
            updateTime: null,
          },
          {
            id: 3,
            name: '访问游客',
            code: 'GUEST',
            status: 1,
            sort: 3,
            createTime: '2021-05-26 15:49:05',
            updateTime: '2019-05-05 16:00:00',
          },
          {
            id: 4,
            name: '系统管理员1',
            code: 'ADMIN1',
            status: 1,
            sort: 2,
            createTime: '2021-03-25 12:39:54',
            updateTime: null,
          },
          {
            id: 5,
            name: '系统管理员2',
            code: 'ADMIN2',
            status: 1,
            sort: 2,
            createTime: '2021-03-25 12:39:54',
            updateTime: null,
          },
          {
            id: 6,
            name: '系统管理员3',
            code: 'ADMIN3',
            status: 1,
            sort: 2,
            createTime: '2021-03-25 12:39:54',
            updateTime: null,
          },
          {
            id: 7,
            name: '系统管理员4',
            code: 'ADMIN4',
            status: 1,
            sort: 2,
            createTime: '2021-03-25 12:39:54',
            updateTime: null,
          },
          {
            id: 8,
            name: '系统管理员5',
            code: 'ADMIN5',
            status: 1,
            sort: 2,
            createTime: '2021-03-25 12:39:54',
            updateTime: null,
          },
          {
            id: 9,
            name: '系统管理员6',
            code: 'ADMIN6',
            status: 1,
            sort: 2,
            createTime: '2021-03-25 12:39:54',
            updateTime: '2023-12-04 11:43:15',
          },
          {
            id: 10,
            name: '系统管理员7',
            code: 'ADMIN7',
            status: 1,
            sort: 2,
            createTime: '2021-03-25 12:39:54',
            updateTime: null,
          },
          {
            id: 11,
            name: '系统管理员8',
            code: 'ADMIN8',
            status: 1,
            sort: 2,
            createTime: '2021-03-25 12:39:54',
            updateTime: null,
          },
        ],
        total: 10,
      },
      msg: '一切ok',
    },
  },

  // 新增角色
  {
    url: 'roles',
    method: ['POST'],
    body({ body }) {
      return {
        code: '00000',
        data: null,
        msg: `新增角色${body.name}成功`,
      }
    },
  },

  // 获取角色表单数据
  {
    url: 'roles/:id/form',
    method: ['GET'],
    body: ({ params }) => {
      return {
        code: '00000',
        data: roleMap[params.id],
        msg: '一切ok',
      }
    },
  },
  // 修改角色
  {
    url: 'roles/:id',
    method: ['PUT'],
    body({ body }) {
      return {
        code: '00000',
        data: null,
        msg: `修改角色${body.name}成功`,
      }
    },
  },

  // 删除角色
  {
    url: 'roles/:id',
    method: ['DELETE'],
    body({ params }) {
      return {
        code: '00000',
        data: null,
        msg: `删除角色${params.id}成功`,
      }
    },
  },
  // 获取角色拥有的菜单ID
  {
    url: 'roles/:id/menuIds',
    method: ['GET'],
    body: ({ params }) => {
      return {
        code: '00000',
        data: [
          1,
          2,
          31,
          32,
          33,
          88,
          3,
          70,
          71,
          72,
          4,
          73,
          75,
          74,
          5,
          76,
          77,
          78,
          6,
          79,
          81,
          84,
          85,
          86,
          87,
          40,
          41,
          26,
          30,
          20,
          21,
          22,
          23,
          24,
          89,
          90,
          91,
          36,
          37,
          38,
          39,
          93,
          94,
          95,
          97,
          102,
          89,
          90,
          91,
          93,
          94,
          95,
          97,
          102,
          103,
          104,
        ],
        msg: '一切ok',
      }
    },
  },
  // 保存角色菜单
  {
    url: 'roles/:id/menus',
    method: ['PUT'],
    body: {
      code: '00000',
      data: null,
      msg: '一切ok',
    },
  },
])

// 角色映射表数据
const roleMap: Record<string, any> = {
  2: {
    id: 2,
    name: '系统管理员',
    code: 'ADMIN',
    status: 1,
    sort: 2,
    createTime: '2021-03-25 12:39:54',
    updateTime: null,
  },
  3: {
    id: 3,
    name: '访问游客',
    code: 'GUEST',
    status: 1,
    sort: 3,
    createTime: '2021-05-26 15:49:05',
    updateTime: '2019-05-05 16:00:00',
  },
  4: {
    id: 4,
    name: '系统管理员1',
    code: 'ADMIN1',
    status: 1,
    sort: 2,
    createTime: '2021-03-25 12:39:54',
    updateTime: null,
  },
  5: {
    id: 5,
    name: '系统管理员2',
    code: 'ADMIN2',
    status: 1,
    sort: 2,
    createTime: '2021-03-25 12:39:54',
    updateTime: null,
  },

  6: {
    id: 6,
    name: '系统管理员3',
    code: 'ADMIN3',
    status: 1,
    sort: 2,
    createTime: '2021-03-25 12:39:54',
    updateTime: null,
  },
  7: {
    id: 7,
    name: '系统管理员4',
    code: 'ADMIN4',
    status: 1,
    sort: 2,
    createTime: '2021-03-25 12:39:54',
    updateTime: null,
  },
  8: {
    id: 8,
    name: '系统管理员5',
    code: 'ADMIN5',
    status: 1,
    sort: 2,
    createTime: '2021-03-25 12:39:54',
    updateTime: null,
  },
  9: {
    id: 9,
    name: '系统管理员6',
    code: 'ADMIN6',
    status: 1,
    sort: 2,
    createTime: '2021-03-25 12:39:54',
    updateTime: '2023-12-04 11:43:15',
  },
  10: {
    id: 10,
    name: '系统管理员7',
    code: 'ADMIN7',
    status: 1,
    sort: 2,
    createTime: '2021-03-25 12:39:54',
    updateTime: null,
  },
  11: {
    id: 11,
    name: '系统管理员8',
    code: 'ADMIN8',
    status: 1,
    sort: 2,
    createTime: '2021-03-25 12:39:54',
    updateTime: null,
  },
}
